home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Komputer 2010 April
/
PCWorld0410.iso
/
hity wydania
/
Ubuntu 9.10 PL
/
karmelkowy-koliberek-desktop-9.10-i386-PL.iso
/
casper
/
filesystem.squashfs
/
usr
/
sbin
/
update-fonts-dir
< prev
next >
Wrap
Text File
|
2008-05-12
|
4KB
|
137 lines
#!/bin/sh
# $Id: update-fonts-dir 189 2005-06-11 00:04:27Z branden $
# This program compiles fonts.dir files for X font directories; see
# mkfontdir(1x) for a description of the format of fonts.dir files.
# Copyright 1999, 2001, 2002, 2004 Branden Robinson.
# Licensed under the GNU General Public License, version 2. See the file
# /usr/share/common-licenses/GPL or <http://www.gnu.org/copyleft/gpl.txt>.
PROGNAME=${0##*/}
ENCDIR=/usr/share/fonts/X11/encodings
# Query the terminal to establish a default number of columns to use for
# displaying messages to the user. This is used only as a fallback in the event
# the COLUMNS variable is not set. ($COLUMNS can react to SIGWINCH while the
# script is running, and this cannot, only being calculated once.)
DEFCOLUMNS=$(stty size 2>/dev/null | awk '{print $2}') || true
if ! expr "$DEFCOLUMNS" : "[[:digit:]]\+$" >/dev/null 2>&1; then
DEFCOLUMNS=80
fi
# Display a message, wrapping lines at the terminal width.
message () {
echo "$*" | fmt -t -w ${COLUMNS:-$DEFCOLUMNS}
}
# Display a warning message.
warn () {
message "warning: $*" >&2
}
# Display an error message and exit.
die () {
message "fatal error: $*" >&2
exit 1
}
# Display a usage message.
usage () {
if [ -n "$*" ]; then
message "usage error: $*"
fi
cat <<EOF
Usage: $PROGNAME DIRECTORY ...
$PROGNAME { -7 | --x11r7-layout } DIRECTORY ...
$PROGNAME { -h | --help }
This program combines X font alias information from several packages into a
single file that is placed in each specified X font directory DIRECTORY. This
utility is primarily useful to Debian package maintainer scripts. See
update-fonts-dir(8) for more information.
Options:
-h, --help display this usage message and exit
-7, --x11r7-layout use new font layout introduced with X11R7
EOF
}
X11R7_LAYOUT=
# Validate arguments.
case "$1" in
-h|--help)
usage
exit 0
;;
-7|--x11r7-layout)
X11R7_LAYOUT=true
shift
;;
esac
case "$1" in
-*)
usage "unrecognized option" >&2
exit 2
;;
esac
if [ $# -eq 0 ]; then
usage "one or more font directories must be specified" >&2
exit 2
fi
while [ -n "$1" ]; do
# Try to be clever about the argument; were we given an absolute path?
if expr "$1" : "/.*" >/dev/null 2>&1; then
# Yes; an absolute path to an X font directory was provided.
XDIRS=$1
if [ -n "$X11R7_LAYOUT" ]; then
ETCDIR=/etc/X11/fonts/X11R7/${XDIRS##*/}
else
ETCDIR=/etc/X11/fonts/${XDIRS##*/}
fi
if [ "$XDIRS" = "$ETCDIR" ]; then
# We were given an /etc directory as an argument.
die "path to X font directory must be used"
else
warn "absolute path $XDIRS was provided"
fi
else
# No; a relative path was provided -- assume we were given just the
# basename.
XDIRS="/usr/share/fonts/X11/$1"
fi
# Confirm that the directories to be operated on exist.
for XDIR in $XDIRS; do
VALID=yes
if ! [ -d "$XDIR" ]; then
warn "$XDIR does not exist or is not a directory"
VALID=
fi
if [ -n "$VALID" ]; then
# Use encoding directories if they are available.
if [ -d "$ENCDIR" ] && [ -d "$ENCDIR/large" ]; then
mkfontdir -e "$ENCDIR" -e "$ENCDIR/large" "$XDIR"
else
mkfontdir "$XDIR"
fi
# Are there any fonts in the font directory?
if [ "$(head -n 1 "$XDIR/fonts.dir")" = "0" ]; then
# There are no files to process; remove any generated files already
# in the font directory.
rm -f "$XDIR/fonts.dir" "$XDIR/encodings.dir"
# Remove the font dirextory if it is empty.
rmdir "$XDIR" >/dev/null 2>&1 || true
fi
fi
done
shift
done
exit 0
# vim:set ai et sts=4 sw=4 tw=80: